Embodiments herein generally relate to print job management systems and methods that involve variable information (VI) or variable data print files. Documents created in electronic form are often represented in a page description language (“PDL”), such as PostScript, PCL, AgfaScript and IPDS. In a PDL representation, a document may be described in terms of commands that represent text and graphical objects. To view or print the document, the PDL commands are sent to a raster image processor (“RIP”), which interprets the PDL commands and generates electronic signals used by an output device to render the text and graphical objects. For example, the RIP may be part of a personal computer or workstation, and the output device may be a video display screen. Alternatively, the RIP may be part of a printer controller, and the output device may be a print engine. In either case, the RIP converts the PDL print stream to a raster bitmap.
A raster bitmap represents the pixels displayed or written by an output device such as a xerographic device and the values used to vary the pixel density. For example, if the density of an output device pixel can have either of two values (e.g., black or white), the bitmap requires one bit for each pixel. For color output devices, a unique bitmap is used for each colorant. Thus, for a print output device that uses cyan, magenta, yellow and black colorants, four bitmaps are used. To print each page of such a document on a high speed color printer, the RIP must generate and provide to the print engine more than three billion bits per second. As a result, RIP processing time often is a bottleneck in achieving high-speed printing. To increase print speed, therefore, it is necessary to split print jobs among multiple print engines.
Previously known techniques for reducing RIP processing time have included parsing a PDL data stream into multiple segments, and then processing the various segments in parallel to different print engines. For example, U.S. Pat. No. 5,652,711, incorporated herein by reference, describes methods for parallel processing a PDL data stream. In particular, U.S. Pat. No. 5,652,711 describes providing a PDL data stream that includes data commands and control commands to a master process, which divides the PDL data stream into independent data stream segments that are converted to intermediate data stream portions by multiple sub-processes. Data commands describe the data that must be reproduced by the output device, such as text, graphics and images, whereas control commands describe how the data must be reproduced, and may include font descriptions, page sections, forms and overlays. Each independent data stream segment includes data commands to describe the images included in a single page or region (i.e., a disjunctive portion of a physical medium), and also includes control commands to instruct how the data commands must be interpreted.
U.S. Patent Publication 2004/0243934, incorporated herein by reference, illustrates a segmentation process for use with a PDL data stream and describes a variable data document that includes variable data portions and fixed-data portions. This segmenting process divides the PDL data stream into variable-data and non-variable data segments. Thus, for example, one non-variable region may correspond to a first non-variable region in the PDL data stream, one variable region may correspond to a first variable region in the PDL data stream, a second non-variable region may correspond to a second non-variable region in the PDL data stream, a second variable region may correspond to a second variable region in the PDL data stream, and so on. In 2004/0243934, two data files are created for each segment. In particular, for each segment, an associated global data file and an associated segment data file are created. Each global data file includes all PDL operations from the associated segment that might affect subsequent segments. For example, global data files may include font settings, fill pattern settings, forms from variable data files, context settings or other similar settings that may be carried over to subsequent segments. Each segment data file, in contrast, includes all PDL commands necessary to interpret the associated segment (including everything in the global data file associated with that segment).
In 2004/0243934, the data file creation process receives PDL data segments, and then creates a global data file and a segment data file for each associated segment, and stores the data files in memory buffers. However, variable information print jobs are most often very large and composed of a print stream and many associated resource files. Typically, the window of time to print these jobs is small, such as in bill printing. Sending the entire print job to a single printer can exceed the time allowed to print the job. Often going back to the originating application and creating many smaller print jobs to be distributed is not possible. Embodiments herein describe a method to automatically take a large variable information job and split it across multiple printers for efficient printing.